package com.example.rtmppusher.test;

import android.app.Activity;
import android.hardware.Camera;
import android.view.Surface;

public class ABC {

    {
        //摄像头朝向，前摄或后摄
        int face = 0;
        face = Camera.CameraInfo.CAMERA_FACING_BACK;

        //摄像头采集方向，以数学方向，即逆时针方向作为正方向
        //手机正常摆放，摄像头眼睛看到的画面方向为0度方向
        int cameraOrientation = 0;
        Camera.CameraInfo info = new Camera.CameraInfo();
        Camera.getCameraInfo(face, info);
        cameraOrientation = info.orientation;

        //屏幕旋转角度，也是以数学方向，即逆时针方向作为正方向
        int displayRotation = 0;
        Activity activity = null;
        int displayRotationEnum = activity.getWindowManager().getDefaultDisplay().getRotation();
        if (displayRotationEnum == Surface.ROTATION_0)
            displayRotation = 0;

        //对默认的预览画面进行旋转，得到正确的预览画面
        //要根据相机采集方向和屏幕旋转角度进行计算，前摄还要考虑左右翻转造成的影响
        //这个方法只旋转预览画面，不改变PreviewCallback中的回调帧数据
        int previewRotation = 0;
        Camera camera = null;
        camera.setDisplayOrientation(previewRotation);
        camera.setPreviewCallback(null);

        //对采集画面进行旋转，得到正确的保存画面
        //要根据相机采集方向和屏幕旋转角度进行计算，前摄还要考虑左右翻转造成的影响
        //这个旋转会反映到PictureCallback和PreviewCallback的回调数据当中
        int frameRotation = 0;
        Camera.Parameters parameters = null;
        parameters.setRotation(frameRotation);
        camera.takePicture(null, null, null);
    }
}

